#include "stm32f10x.h"                  // Device header
#include "PWM.h"
#include "Motor.h"

//控制小车两边电机驱动
void Motor_Init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6| GPIO_Pin_7;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	
	PWM_Init();
}
//一个舵机可以控制两个电机，将小车左侧两个电机连接，可以驱动四个电机
void LeftMotor_SetSpeed(int8_t Speed)
{
    if(Speed > 0){
	GPIO_SetBits(GPIOA,GPIO_Pin_4);            
	GPIO_ResetBits(GPIOA,GPIO_Pin_5);
	PWM_SetCompare2(Speed);
	}
	else if(Speed == 0){
	GPIO_SetBits(GPIOA,GPIO_Pin_4);
	GPIO_SetBits(GPIOA,GPIO_Pin_5);
	PWM_SetCompare2(Speed);
	}
	else{
	GPIO_ResetBits(GPIOA,GPIO_Pin_4);
	GPIO_SetBits(GPIOA,GPIO_Pin_5);
	PWM_SetCompare2(-Speed); //CCR的值为正数，所以Speed前面加负号
	}
}
void RightMotor_SetSpeed(int8_t Speed)
{
    if(Speed > 0){
	GPIO_SetBits(GPIOA,GPIO_Pin_6);
	GPIO_ResetBits(GPIOA,GPIO_Pin_7);
	PWM_SetCompare3(Speed);
	}
	else if(Speed == 0){
	GPIO_SetBits(GPIOA,GPIO_Pin_6);
	GPIO_SetBits(GPIOA,GPIO_Pin_7);
	PWM_SetCompare3(Speed);
	}
	else{
	GPIO_ResetBits(GPIOA,GPIO_Pin_6);
	GPIO_SetBits(GPIOA,GPIO_Pin_7);
	PWM_SetCompare3(-Speed); //CCR的值为正数，所以Speed前面加负号
	}
}
